import axios from "axios";

let http = axios.create({
  //baseURL:'/mapApi',//process.env.API_ROOT,
  timeout:5000,
  //headers:{'ContentType':'application/json'},
  responseType:'blob'    // 设置响应数据类型
})
//下载文件
const $file = {
  loadFile(url,data,fileName,type){
    if(data){
      return new Promise((resolve,reject)=>{
        http.post(url,data).then(res=>{
          let url = window.URL.createObjectURL(new Blob([res.data],{ type: type||'application/vnd.ms-excel'}))
          let link= document.createElement('a')
          link.style.display='none'
          link.href=url
          //获取文件名
          let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]
          // 文件名中有中文 则对文件名进行转码
          link.download = decodeURIComponent(fileName||_fileName)
          link.setAttribute('download', fileName||_fileName)    // 自定义下载文件名（如exemple.txt）
          document.body.appendChild(link)
          link.click()
          document.body.removeChild(link)//下载完成移除元素
          window.URL.revokeObjectURL(url);//释放掉blob对象
          resolve();
        }).catch((err=>{
          reject(err)
        }))
      })
    }else {
      return new Promise((resolve,reject)=>{
        http.post(url).then(res=>{
          let url = window.URL.createObjectURL(new Blob([res.data],{ type: type||'application/vnd.ms-excel;'}))
          let link= document.createElement('a')
          link.style.display='none'
          link.href=url
          //获取文件名
          let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]
          // 文件名中有中文 则对文件名进行转码
          link.download = decodeURIComponent(fileName||_fileName)
          link.setAttribute('download', fileName||_fileName)    // 自定义下载文件名（如exemple.txt）
          document.body.appendChild(link)
          link.click()
          document.body.removeChild(link)//下载完成移除元素
          window.URL.revokeObjectURL(url);//释放掉blob对象
          resolve();
        }).catch((err=>{
          reject(err)
        }))
      })
    }
  },
};

export {
  $file,
}
